package pe.gob.bcrp.sgci.gestion.reportes.svc.librosprincipales;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Vector;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import pe.gob.bcrp.sgci.gestion.reportes.util.DateUtil;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.impl.librosprincipales.ReporteVersionLibroDiarioDAOImpl;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.impl.librosprincipales.ReporteVersionLibroDiarioDetalleDAOImpl;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.librosprincipales.ReporteVersionLibroDiarioDAO;
import pe.gob.bcrp.sgci.gestion.reportes.model.dao.librosprincipales.ReporteVersionLibroDiarioDetalleDAO;
import pe.gob.bcrp.sgci.gestion.reportes.model.entity.librosprincipales.ReporteVersionLibroDiario;
import pe.gob.bcrp.sgci.gestion.reportes.model.entity.librosprincipales.ReporteVersionLibroDiarioDetalle;

@Stateless
public class LibDiarioSvc {
	
	@EJB
	ReporteVersionLibroDiarioDAO reporteVersionLibroDiarioDAO;
	
	@EJB
	ReporteVersionLibroDiarioDetalleDAO reporteVersionLibroDiarioDetalleDAO;
	
	/*public Vector<ReporteVersionLibroDiarioDetalle> buscarPorFechas(String desde, String hasta){
		
		String formato = DateUtil.FORMATO_FECHA_YYYY_MM_DD;
		Date desdeDate = DateUtil.stringToDate(desde, formato);
		Date hastaDate = DateUtil.stringToDate(hasta, formato);
		
		LibDiarioDAO libDiarioDAO = new LibDiarioDAOImpl();
		Vector<LibDiario> vectorLibDiario = (Vector<LibDiario>) libDiarioDAO.findByDate(desdeDate, hastaDate);
		
		return vectorLibDiario;
	}*/
	
	public Vector<ReporteVersionLibroDiarioDetalle> buscar(int codigo){
		BigDecimal cod = new BigDecimal(codigo);
		reporteVersionLibroDiarioDAO = new ReporteVersionLibroDiarioDAOImpl();
		
		ReporteVersionLibroDiario repVerLibDia = reporteVersionLibroDiarioDAO.findById(cod);
		
		Object[] arrObject = repVerLibDia.getRepVerLibDiaDetList().toArray();
        List list = Arrays.asList(arrObject);
        Vector vector = new Vector(list);
		
		return vector;
	}
	
	public ReporteVersionLibroDiario buscarRepVerLibDiario(int codigo){
		BigDecimal cod = new BigDecimal(codigo);
		reporteVersionLibroDiarioDAO = new ReporteVersionLibroDiarioDAOImpl();
		
		ReporteVersionLibroDiario repVerLibDia = reporteVersionLibroDiarioDAO.findById(cod);
		
		return repVerLibDia ;
	}
	
	public Vector<ReporteVersionLibroDiarioDetalle> buscarTodos(){
		reporteVersionLibroDiarioDetalleDAO = new ReporteVersionLibroDiarioDetalleDAOImpl();
		return (Vector<ReporteVersionLibroDiarioDetalle>) reporteVersionLibroDiarioDetalleDAO.findAll();
	}
	
	public long createNuevoReporteVersionLibroDiario(){
		reporteVersionLibroDiarioDAO = new ReporteVersionLibroDiarioDAOImpl();
		return reporteVersionLibroDiarioDAO.createNuevoReporteVersionLibroDiario("1", DateUtil.stringToDate("01-04-2012", "dd-MM-yyyy"), DateUtil.stringToDate("10-04-2012", "dd-MM-yyyy"));
	}
	
	public static void main(String[] args) {
		LibDiarioSvc l = new LibDiarioSvc();
		System.out.println("->ENTRA");
		try{
			ReporteVersionLibroDiario repVerLibDiario = l.buscarRepVerLibDiario( 1 );
			System.out.println("----------DATOS");
			System.out.println(repVerLibDiario.getFecDesdeString());
			System.out.println(repVerLibDiario.getFecHastaString());
			System.out.println(repVerLibDiario.getReporteVersion().getFecProcesoFormateada());
			System.out.println(repVerLibDiario.getReporteVersion().getHoraProcesoFormateada());
			System.out.println("->TERMIN O!!");
		}catch(Exception e){
			System.out.println("GG: "+ e);
		}
		System.out.println("HABLAMOS");
	}	
}
